// 定义用来做全局组件注册的插件
// 插件的使用
// 1、插件的定义
// （1）、对象定义法 （2）、函数定义法（当插件是以函数定义时，那函数本身会被作为install方法自动执行）
// 2、插件的注册
import PageTools from '@/components/PageTools/index.vue'
import UploadImg from '@/components/UploadImg/index.vue'
const plugin = {
  install(Vue) {
    Vue.component(PageTools.name, PageTools)
    Vue.component(UploadImg.name, UploadImg)
    // 拿到了Vue，那就可以使用Vue.component方法了
  }
}

// 2、插件的注册  实例化之前  调用vue.use(plugin)
// 注意：一旦我们调用了Vue.use(plugin)相当于自动执行了 插件对象内部的install方法，并把Vue构造函数当成实参传入
export default plugin


/*
1、什么是插件？
  只要你想给Vue扩展一些全局的功能，就可以通过插件来做
  （1）添加全局的静态方法或属性   Vue.title = ''
  (2)添加全局组件或全局指令  ：Vue.component Vue.directive
  (3)添加实例方法或属性      ：Vue.prototype.$http=function(){}
结论：只要Vue构造函数能力所及，都可以完成插件
2、插件的定义有几种？
  （1）对象定义法 （2）函数定义法
3、Vue.use必须在什么地方执行？
  必须在new Vue实例化之前

4、执行Vue.use相当于做了什么方法？
  自动执行install方法，并把Vue当做实参传入方法

*/

